The present invention relates generally to a multi-logical access for a serial data link, and more particularly pertains to a driver task designed with a multi-logical connectionless serial interface protocol which permits multi-drop processes or applications to communicate in a time division multiplex mode over a singular drop physical serial data link such as an RS-232 line.
The present invention permits time division multiplexing of data from different applications or processes over a serial data link as if each had dedicated control of the physical serial data link. In greater detail, the subject invention provides a driver task with a common data link layer which allows multiple and different applications running on a device to communicate with a host computer without any limitation or interference from other applications using the same physical serial data link. The present invention provides a flexible, reliable, robust and simple communications protocol between a performance sensitive device and other similar devices.
In the prior art when a plurality of using programs or applications have competed for the transfer of data using a serial I/O scheme, various implementations have been employed and are well known.
A first prior art approach permits an operating system to arbitrate and allocate which one of the many potential using programs will actually access the serial I/O device and for what times. Upon completion of usage of the serial I/O device by the selected using program, complete control of usage of the serial I/O device is returned to the operating system, which then permits other using programs to access the serial I/O device.
A second prior art approach, similar to the first approach, permits the using program to maintain exclusive control over the serial I/O device (commonly referred to as xe2x80x9clockingxe2x80x9d the serial I/O device) until such time as the selected using program completes its data transfer, or is terminated. This approach has typically been employed in transferring data to printers, or in the transfer of data to modems. These prior art approaches generally require the non-selected using programs to wait until such time as the selected using program completes its task.
The present invention provides a connectionless serial interface protocol, with connectionless meaning that the protocol operates without a single defined hard connection between a transmitter and a receiver.
A data communication system entitled KERMIT is available in the prior art which incorporates a concept similar to the transmitter sliding window of the present invention, which allows the retransmission of one or more data units in the event of a corruption of previously transmitted data units. However, the KERMIT data communication system does not incorporate a data buffering system on the receiver side similar to that of the present invention.
Accordingly, it is a primary objective of the present invention to provide multi-logical access over a serial data link. The invention protocol permits multi-drop processes or applications to communicate in a time division multiplex mode over a singular physical serial link such as an RS-232 line or the like.
The present invention provides a connectionless serial interface protocol, with connectionless meaning that the protocol operates without a single defined hard connection between a transmitter and a receiver
A further object of the subject invention is the provision of a multi-logical access to a serial data link which allows multiple and different applications running on a device to communicate with a host computer without any limitation or interference from other applications using the same data link and with a flexible, reliable, robust and simple communications protocol.
The driver task state machine of the present invention is designed to meet the following:
1) The driver task provides multi-logical accesses (time division multiplex) over a physical serial link, such as an RS-232 serial line.
2) The driver task provides a full duplex and robust communication protocol.
3) The driver physical layer is implemented in a 3-wire RS-232 protocol.
4) The driver task is able to handle more logical accesses and different data types without any modifications to its code.
5) The driver task allows other tasks (applications) to configure options of how data is to be received, to have duplicates or no duplicates, out-of-sequence or only in-sequence data.
6) The driver task does not receive any RTOS (Real Time Operating System) messages.
7) The driver task is able to maintain statistics on dropped messages or discarded data.
8) The communications protocol is capable of error-free continuous full duplex data transmission at 57.6 KBPS between a HHP (Hand Held Phone) and a host PC, with the load on the 13-MHZ 186 CPU from the HHP being no greater than 25% of the CPU time.
9) If a transmission error occurs that causes part of a transmitted data unit to be missing or corrupted, this condition is detected by the receiving driver task in the HHP or host PC. The receiving driver task discards the whole data unit rather than passing the incomplete or corrupted data unit to other tasks. A data unit in this requirement means the data passed to the driver task in a single API (Application Program Interface) function call. A data unit can contain between 1 and 1024 bytes of data inclusive.
10) The Driver Task implemented in the preferred embodiment was designed for use in local connections (with no network or device inbetween).